<?php
class ClientsAccesosController extends AppController {

	var $name = 'ClientsAccesos';
	var $uses = array('Rol','ClientsAcceso');


    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }

	function index() {
		
		$this->_accede('matriz_permisos');


		$client_id = $this->Session->read('ClientesUsuarioLogueado.id'); 

		$TablaNombres = $this->_tablanombres(); 
		
		$Tabla        = $this->_tabla();

		if(isset($_POST['data']) and !empty($_POST['data'])) {
			//------------------------------------------------------------------
			//                               Elimino todos los accesos de la BD
			//------------------------------------------------------------------
			$this->ClientsAcceso->deleteAll(array('ClientsAcceso.client_id' => $client_id), false);

			$data = $_POST['data'];
			foreach ($data as $rol_id=>$valor){
				foreach($TablaNombres as $identificador=>$tn){
					$ca = array();
					$ca['id']            = 0;
					$ca['client_id']     = $client_id;
					$ca['rol_id']        = $rol_id;
					$ca['identificador'] = $identificador;
					if (isset($valor[$identificador])) {
						$ca['accede']    = 1;	
					} else {
						$ca['accede']    = 0;	
					}
					if($identificador=='matriz_permisos' and $rol_id==1){
						$ca['accede']    = 1;	
					}
					$this->ClientsAcceso->create();
					$this->ClientsAcceso->save($ca);
				} //end foreach $TablaNombres

			} // end foreach $data

			$this->Session->setFlash(__('Los permisos han sido actualizados', true));
			$this->redirect(array('controller'=>'clients','action' => "view/$client_id/8"));

		} // end fi $_POST



		//--------------------------------------------------------------------
		//                    Obtengo los accesos de la tabla clients_accesos
		//                               y los asigno a la matriz por defecto
		//--------------------------------------------------------------------
		$Accesos = $this->ClientsAcceso->find('all', array(
						'conditions' => array( 'ClientsAcceso.client_id' => $client_id	)
						));
		foreach($Accesos as $aa){
			$rol_id        = $aa['ClientsAcceso']['rol_id'];
			$identificador = $aa['ClientsAcceso']['identificador'];
			$accede        = $aa['ClientsAcceso']['accede'];
			$Tabla[$rol_id][$identificador] = $accede;
		}


		$this->Rol->recursive = 0;
		$Roles = $this->Rol->find('all', array( 'order' => array('Rol.orden'=>'ASC') ) );

		$this->set('Roles', $Roles);
		$this->set('TablaNombres', $TablaNombres);
		$this->set('Tabla', $Tabla);
		$this->set('client_id',$client_id);
	}

}
?>